package com.tianqu.tms.dao;

import java.sql.Timestamp;
import java.util.List;

import com.tianqu.tms.core.exception.TmsDaoException;
import com.tianqu.tms.dto.AucManagerDto;

public interface AucManagerDao {

	/**
	 * 插入竞价车辆信息
	 * 
	 * @throws TmsDaoException
	 */
	public void insertAucManger(AucManagerDto dto) throws TmsDaoException;

	/**
	 * 更新车辆信息
	 * 
	 * @param dto
	 * @throws TmsDaoException
	 */
	public void updateAucManager(AucManagerDto dto) throws TmsDaoException;

	/**
	 * 
	 * 根据竞价状态查询车辆竞价信息
	 */
	public List<AucManagerDto> findAucManageInfoByStatus(int status)
			throws TmsDaoException;

	/**
	 * 根据世间段查询车辆竞价信息
	 * 
	 */
	public List<AucManagerDto> findAucInfoByPeriod(Timestamp startTime) throws TmsDaoException;

	/**
	 * 
	 * 根据车辆状态和开始结束时间端查询车辆竞价信息
	 */
	public List<AucManagerDto> findAucInfoByStatus(int status) throws TmsDaoException;

	/**
	 * 
	 * 根据车辆ID查询车辆竞价信息
	 */
	public AucManagerDto getAucInfoById(int serial)
			throws TmsDaoException;

	/**
	 * 
	 * 根据车辆ID和会员ID查询我的竞价车辆信息
	 */
	public AucManagerDto getMyDealAucCarInfo(String serial,int memberID) throws TmsDaoException;
	/**
	 * 更新竞价状态：下架处理
	 * 
	 * @param bidType
	 * @param Serial
	 * @throws TmsDaoException
	 */
	public void updateBidType(int bidType, int Serial)
			throws TmsDaoException;

	/**
	 * 获得今日所有的竞价车辆信息
	 * 
	 * @param startTime
	 * @param endTime
	 * @return
	 * @throws TmsDaoException
	 */
	public List<AucManagerDto> getAucManagementList() throws TmsDaoException;

	public List<AucManagerDto> getBidWeitList(String startTime, String endTime)
			throws TmsDaoException;

	/**
	 * 
	 * 查询所有成交车辆信息
	 */
	public List getAllAucDealInfo(int memberId) throws TmsDaoException;
	/**
	 * 根据主键ID更新管理表信息
	 */
	public void updateAucManageInfoById(AucManagerDto dto) throws TmsDaoException;
	/**
	 * 更新竞价状态
	 */
	public void upAucManageStatusBySerial(String serial,int bidStatus) throws TmsDaoException;
	
	/**
	 * 批量更新车辆竞价信息
	 */
	public  void setCarbidInfo(AucManagerDto dto) throws TmsDaoException;
	
	/**
	 * 批量更新竞价状态
	 */
    public void updateBidStatus(int id,int status)throws TmsDaoException;

	AucManagerDto getAucInfoBySerialAll(int id) throws TmsDaoException;
	
	/**
     * 查看当前是否有待竞价、竞价中的车辆
     * @return
     * @throws TmsDaoException
     */
	public String getManaId(String serial )throws TmsDaoException;

	/**
     * 竞价管理表最新ID取得
     * @return
     * @throws TmsDaoException
     */
	public int getManaMaxId() throws TmsDaoException;
	
	/**
     * 查询当前车辆的最高出价
     * @return
     * @throws TmsDaoException
     */
	public int selectFinalExpetPricesById(int id)  throws TmsDaoException;
	
	/**
     * 更新出价商户总数量
     * @return
     * @throws TmsDaoException
     */
	public void updateExpetPricesNum(int id) throws TmsDaoException;
	
	/**
     * 更新最高出价，最高出价商户id，出价商户总数量
     * @return
     * @throws TmsDaoException
     */
	public void updateFinalExpetPricesAndExpetPricesNum(AucManagerDto dto) throws TmsDaoException;
	
	/**
     * 更新tms_auc_management表BidStatus
     * @return
     * @throws TmsDaoException
     */
	public void updateBistatusById(AucManagerDto dto) throws TmsDaoException;
}